/*
题目描述
编写一个函数，实现左右循环移位。
函数名为move，调用方法为move(value, n)。
其中value为需要循环位移的数，n为位移的位数。
n<0表示为左移；n>0表示为右移。
例如，n=4表示右移4位；n=-3表示左移3位。
请务必注意本题中的整数是32位无符号整数，输入和输出时可以使用%u进行处理。

输入
两个用空格隔开的整数，第一个为32位无符号整数value，第二个为整数n。保证n的绝对值不超过30。

输出
move(value, n)函数的返回结果。
请注意行尾输出换行。
*/
#include <stdio.h>
unsigned int move(unsigned int value, int n)
{
    if (n > 0)
    {
        value = (value >> n) | (value << (32 - n));
    }
    else if (n < 0)
    {
        value = (value << -n) | (value >> (32 + n));
    }
    return value;
}
int main(){
    unsigned int value;
    int n;
    scanf("%u %d",&value,&n);
    printf("%u\n",move(value,n));
}